home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / AXREAD12.ZIP / ENTER.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-08-03  |  10KB  |  763 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN003
  20.     Boolean  BOOLEAN004
  21.     Boolean  BOOLEAN005
  22.     Boolean  BOOLEAN006
  23.     Boolean  BOOLEAN007
  24.     Integer  INTEGER003
  25.     Integer  INTEGER004
  26.     String   STRING001
  27.     String   STRING017
  28.     String   STRING018
  29.     String   STRING019
  30.     String   STRING020
  31.     String   TSTRING021(10)
  32.     String   TSTRING022(4)
  33.     String   STRING023
  34.     String   STRING024
  35.     String   TSTRING025(15)
  36.     String   STRING027
  37.     Int      INT001
  38.     Int      INT002
  39.     Int      INT003
  40.     Int      INT004
  41.     Int      INT005
  42.     Int      INT007
  43.     Int      INT008
  44.     Int      INT009
  45.     Int      INT010
  46.     Declare  Procedure PROC001(String STRING002)
  47.     Declare  Procedure PROC002(String STRING003, Integer INTEGER001, String STRING004)
  48.     Declare  Procedure PROC003(String STRING005, String STRING006, String STRING007, String STRING008)
  49.     Declare  Procedure PROC004(String STRING009, String STRING010, String STRING011, String STRING012, Integer INTEGER002, String STRING013, String STRING014, String STRING015, String STRING016, Boolean BOOLEAN001, Boolean BOOLEAN002)
  50.     Declare  Procedure PROC005(Var String STRING026, Int INT006, Boolean BOOLEAN008)
  51.  
  52. ;------------------------------------------------------------------------------
  53.  
  54.     Goto LABEL004
  55.     End
  56.  
  57. ;------------------------------------------------------------------------------
  58.  
  59.     Procedure PROC001(String STRING002)
  60.  
  61.     GetUser
  62.     FOpen 3, STRING002, 1, 3
  63.     FPutLn 3, PCBMac("@BOARDNAME@")
  64.     STRING001 = ReadLine(PCBDat(), 2)
  65.     Tokenize STRING001
  66.     FPutLn 3, GetToken()
  67.     FPutLn 3, GetToken()
  68.     If (OnLocal()) Then
  69.         STRING001 = "COM0:"
  70.     Else
  71.         STRING001 = ReadLine(PCBDat(), 52)
  72.     Endif
  73.     FPutLn 3, STRING001
  74.     If (OnLocal()) Then
  75.         STRING001 = "0 BAUD,N,8,1"
  76.     Else
  77.         STRING001 = ReadLine(PCBDat(), 53) + " BAUD,N,8,1"
  78.     Endif
  79.     FPutLn 3, STRING001
  80.     FPutLn 3, "0"
  81.     If (U_Alias == "") Then
  82.         STRING001 = U_Name()
  83.     Else
  84.         STRING001 = U_Alias
  85.     Endif
  86.     Tokenize STRING001
  87.     FPutLn 3, GetToken()
  88.     FPutLn 3, GetToken()
  89.     FPutLn 3, U_City
  90.     FPutLn 3, "1"
  91.     FPutLn 3, U_Sec
  92.     FPutLn 3, PCBMac("@TIMELEFT@")
  93.     FClose 3
  94.     FClose -1
  95.  
  96.     EndProc
  97.  
  98.  
  99. ;------------------------------------------------------------------------------
  100.  
  101.     Procedure PROC002(String STRING003, Integer INTEGER001, String STRING004)
  102.  
  103.     MsgToFile CurConf(), INTEGER001, TempPath() + "temp" + String(PcbNode())
  104.     FOpen 2, TempPath() + "temp" + String(PcbNode()), 0, 3
  105.     While (STRING001 <> "Message Body:") Do
  106.         FGet 2, STRING001
  107.     EndWhile
  108.     FOpen 3, STRING003, 1, 3
  109.     :LABEL001
  110.     If (Ferr(2)) Goto LABEL003
  111.     FGet 2, STRING001
  112.     If (Left(STRING001, 1) == Chr(1)) Goto LABEL002
  113.     If (Left(STRING001, Len(STRING004)) == STRING004) Then
  114.         FPutLn 3, STRING001
  115.     Else
  116.         FPutLn 3, STRING004 + STRING001
  117.     Endif
  118.     :LABEL002
  119.     Goto LABEL001
  120.     :LABEL003
  121.     FClose 2
  122.     FClose 3
  123.     Delete TempPath() + "temp" + String(PcbNode())
  124.  
  125.     EndProc
  126.  
  127.  
  128. ;------------------------------------------------------------------------------
  129.  
  130.     Procedure PROC003(String STRING005, String STRING006, String STRING007, String STRING008)
  131.  
  132.     FOpen 3, STRING005, 1, 0
  133.     FPutLn 3, Mixed(STRING007)
  134.     FPutLn 3, Mixed(STRING006)
  135.     FPutLn 3, STRING008
  136.     FPutLn 3, String(HiMsgNum() + 1)
  137.     FPutLn 3, ConfInfo(CurConf(), 1)
  138.     FPutLn 3, "NO"
  139.     FClose 3
  140.  
  141.     EndProc
  142.  
  143.  
  144. ;------------------------------------------------------------------------------
  145.  
  146.     Procedure PROC004(String STRING009, String STRING010, String STRING011, String STRING012, Integer INTEGER002, String STRING013, String STRING014, String STRING015, String STRING016, Boolean BOOLEAN001, Boolean BOOLEAN002)
  147.  
  148.     PROC001(STRING011)
  149.     If (BOOLEAN002) PROC002(STRING010, INTEGER002, STRING016)
  150.     PROC003(STRING012, STRING013, STRING014, STRING015)
  151.     SaveScrn
  152.     If (Right(TempPath(), 1) == "\") Then
  153.         STRING001 = TempPath()
  154.     Else
  155.         STRING001 = TempPath() + "\"
  156.     Endif
  157.     Shell 1, INT001, STRING009, STRING001
  158.     RestScrn
  159.     Delete STRING011
  160.     If (Exist(TempPath() + "MSGABT")) Then
  161.         Delete TempPath() + "MSGABT"
  162.         Wait
  163.     ElseIf (BOOLEAN001) Then
  164.         Message CurConf(), STRING013, STRING014, STRING015, "R", 0, 0, ConfInfo(CurConf(), 31), STRING010
  165.     Else
  166.         Message CurConf(), STRING013, STRING014, STRING015, "N", 0, 0, ConfInfo(CurConf(), 31), STRING010
  167.     Endif
  168.     Delete STRING010
  169.     Delete STRING012
  170.  
  171.     EndProc
  172.  
  173.     :LABEL004
  174.     If (TokCount() > 0) Then
  175.         STRING001 = Trim(Upper(GetToken()), " ")
  176.         If (STRING001 == "ALL") Then
  177.             BOOLEAN004 = 1
  178.         Endif
  179.     Endif
  180.     INTEGER003 = FileInf(ReadLine(PCBDat(), 29), 4) / 400
  181.     INT005 = ReadLine(PCBDat(), 237)
  182.     FClose -1
  183.     STRING023 = "@X0CU@X04ser @X0F@OPTEXT@ @X0Cn@X04ot @X0Cf@X04ound@X0C!@CLREOL@"
  184.     STRING024 = PPEPath() + "EXT" + String(PcbNode()) + ".BAT"
  185.     If (Exist(STRING024)) Then
  186.         BOOLEAN005 = 1
  187.     Else
  188.         BOOLEAN005 = 0
  189.     Endif
  190.     TSTRING022(0) = "@X08[@X1FSEARCH@X08] [@X07RE-ENTER@X08] [@X07ABORT@X08] [@X07CONTINUE@X08] [@X07HELP@X08]"
  191.     TSTRING022(1) = "@X08[@X07SEARCH@X08] [@X1FRE-ENTER@X08] [@X07ABORT@X08] [@X07CONTINUE@X08] [@X07HELP@X08]"
  192.     TSTRING022(2) = "@X08[@X07SEARCH@X08] [@X07RE-ENTER@X08] [@X1FABORT@X08] [@X07CONTINUE@X08] [@X07HELP@X08]"
  193.     TSTRING022(3) = "@X08[@X07SEARCH@X08] [@X07RE-ENTER@X08] [@X07ABORT@X08] [@X1FCONTINUE@X08] [@X07HELP@X08]"
  194.     TSTRING022(4) = "@X08[@X07SEARCH@X08] [@X07RE-ENTER@X08] [@X07ABORT@X08] [@X07CONTINUE@X08] [@X1FHELP@X08]"
  195.     GetUser
  196.     StartDisp 1
  197.     DispFile PPEPath() + "ENTER", 4
  198.     STRING020 = PPEPath() + "DATA\" + Strip(Left(U_Name(), 4) + Right(U_Name(), 4), " ")
  199.     If (Exist(STRING020)) Goto LABEL005
  200.     AnsiPos 40, 10
  201.     PrintLn "@X0CNo address book found, type BOOK"
  202.     AnsiPos 40, 11
  203.     PrintLn "@X0Cfrom the main menu to create one"
  204.     Goto LABEL008
  205.     :LABEL005
  206.     INT002 = 1
  207.     FOpen 1, STRING020, 0, 0
  208.     :LABEL006
  209.     If (Ferr(1)) Goto LABEL007
  210.     FGet 1, TSTRING021(INT002)
  211.     Inc INT002
  212.     Goto LABEL006
  213.     :LABEL007
  214.     FClose 1
  215.     INT003 = INT002 - 2
  216.     AnsiPos 51, 7
  217.     Print "@X08[@X0F@X08/@X0F@X07 to select names@X08]"
  218.     :LABEL008
  219.     If (BOOLEAN004) Goto LABEL009
  220.     AnsiPos 50, 4
  221.     PROC005(STRING017, 24, 1)
  222.     :LABEL009
  223.     Select Case (STRING017)
  224.         Case "@USER@", "@ALL@"
  225.             If (CurSec() < INT005) Then
  226.                 STRING017 = "ALL"
  227.                 AnsiPos 50, 4
  228.                 Print "@X0FALL@X08·····················"
  229.                 AnsiPos 40, 6
  230.                 Print "                    "
  231.                 BOOLEAN003 = 1
  232.                 Goto LABEL017
  233.             Else
  234.                 STRING017 = "@USER@"
  235.             Endif
  236.             If (STRING017 == "") STRING017 = "ALL"
  237.         Case "ALL"
  238.             AnsiPos 50, 4
  239.             Print "@X0FALL"
  240.             AnsiPos 40, 6
  241.             Print "                    "
  242.             BOOLEAN003 = 1
  243.         Case Else
  244.             If (ConfInfo(CurConf(), 50) <> 0) Goto LABEL017
  245.             INT002 = U_RecNum(STRING017)
  246.             If (INT002 < 0) Then
  247.                 OpText STRING017
  248.                 AnsiPos 33, 10
  249.                 PrintLn STRING023
  250.                 INT002 = 0
  251.                 Gosub LABEL026
  252.                 :LABEL010
  253.                 STRING001 = Upper(TInkey(0))
  254.                 Select Case (STRING001)
  255.                     Case "6"
  256.                         STRING001 = "RIGHT"
  257.                     Case "4"
  258.                         STRING001 = "LEFT"
  259.                 End Select
  260.                 If (STRING001 == "LEFT") Then
  261.                     If (INT002 == 0) Then
  262.                         INT002 = 4
  263.                         Goto LABEL011
  264.                     Endif
  265.                     Dec INT002
  266.                     :LABEL011
  267.                     Gosub LABEL026
  268.                 Endif
  269.                 If (STRING001 == "RIGHT") Then
  270.                     If (INT002 == 4) Then
  271.                         INT002 = 0
  272.                         Goto LABEL012
  273.                     Endif
  274.                     Inc INT002
  275.                     :LABEL012
  276.                     Gosub LABEL026
  277.                 Endif
  278.                 If (STRING001 == "S") Then
  279.                     INT002 = 0
  280.                     Gosub LABEL026
  281.                     STRING001 = Chr(13)
  282.                 Endif
  283.                 If (STRING001 == "R") Then
  284.                     INT002 = 1
  285.                     Gosub LABEL026
  286.                     STRING001 = Chr(13)
  287.                 Endif
  288.                 If (STRING001 == "A") Then
  289.                     INT002 = 2
  290.                     Gosub LABEL026
  291.                     STRING001 = Chr(13)
  292.                 Endif
  293.                 If (STRING001 == "C") Then
  294.                     INT002 = 3
  295.                     Gosub LABEL026
  296.                     STRING001 = Chr(13)
  297.                 Endif
  298.                 If (STRING001 == "H") Then
  299.                     INT002 = 4
  300.                     Gosub LABEL026
  301.                     STRING001 = Chr(13)
  302.                 Endif
  303.                 If (STRING001 == Chr(13)) Then
  304.                     AnsiPos 33, 10
  305.                     ClrEol
  306.                     AnsiPos 33, 11
  307.                     ClrEol
  308.                     If (INT002 == 0) Then
  309.                         AnsiPos 33, 10
  310.                         OpText STRING017
  311.                         Print "@X0AS@X02earching @X0Au@X02ser @X0Ab@X02ase @X0Af@X02or @X0F@OPTEXT@.@X07.@X08."
  312.                         AnsiPos 33, 11
  313.                         Print "@X0FM@X07atches @X0FF@X07ound@X08: @X0F"
  314.                         INT004 = 0
  315.                         For INTEGER004 = 1 To INTEGER003
  316.                             If (INT004 > 13) Goto LABEL014
  317.                             GetAltUser INTEGER004
  318.                             If (U_Alias == "") Then
  319.                                 STRING001 = U_Name()
  320.                                 Goto LABEL013
  321.                             Endif
  322.                             STRING001 = U_Alias
  323.                             :LABEL013
  324.                             If (InStr(STRING001, STRING017) > 0) Then
  325.                                 TSTRING025(INT004) = " " + Left(STRING001, 30) + " "
  326.                                 Inc INT004
  327.                                 AnsiPos 48, 11
  328.                                 Print INT004
  329.                             Endif
  330.                         Next
  331.                         If (INT004 == 0) Then
  332.                             FReAltUser
  333.                             AnsiPos 33, 10
  334.                             Print "@X0CNo users matching @X0F@OPTEXT@ @X0Cfound!@CLREOL@"
  335.                             AnsiPos 33, 11
  336.                             ClrEol
  337.                             AnsiPos 1, 15
  338.                             Wait
  339.                             End
  340.                         Endif
  341.                         :LABEL014
  342.                         FReAltUser
  343.                         AnsiPos 33, 10
  344.                         ClrEol
  345.                         AnsiPos 33, 11
  346.                         ClrEol
  347.                         Dec INT004
  348.                         For INTEGER004 = 0 To INT004
  349.                             AnsiPos 46, 9 + INTEGER004
  350.                             PrintLn "@X08▌@X07" + TSTRING025(INTEGER004) + "@X08▐"
  351.                         Next
  352.                         AnsiPos 46, 9 + INTEGER004
  353.                         Print "@X08▀▀@X38▌@X3F/8=up /2=down enter=select@X38▐@X08▀▀"
  354.                         INTEGER004 = 0
  355.                         AnsiPos 47, 9 + INTEGER004
  356.                         Print "@X1F" + TSTRING025(INTEGER004) + "@X07"
  357.                         While (STRING019 <> Chr(13)) Do
  358.                             STRING019 = TInkey(0)
  359.                             If (STRING019 == "2") Then
  360.                                 STRING019 = "DOWN"
  361.                                 Goto LABEL015
  362.                             Endif
  363.                             If (STRING019 == "8") Then
  364.                                 STRING019 = "UP"
  365.                             Endif
  366.                             :LABEL015
  367.                             If (STRING019 == "UP") Then
  368.                                 AnsiPos 47, 9 + INTEGER004
  369.                                 Print "@X07" + TSTRING025(INTEGER004)
  370.                                 If (INTEGER004 == 0) Then
  371.                                     INTEGER004 = INT004
  372.                                     AnsiPos 47, 9 + INTEGER004
  373.                                     Print "@X1F" + TSTRING025(INTEGER004) + "@X07"
  374.                                     Goto LABEL016
  375.                                 Endif
  376.                                 Dec INTEGER004
  377.                                 AnsiPos 47, 9 + INTEGER004
  378.                                 Print "@X1F" + TSTRING025(INTEGER004) + "@X07"
  379.                                 :LABEL016
  380.                                 Continue
  381.                             Endif
  382.                             If (STRING019 == "DOWN") Then
  383.                                 AnsiPos 47, 9 + INTEGER004
  384.                                 Print "@X07" + TSTRING025(INTEGER004)
  385.                                 If (INTEGER004 == INT004) Then
  386.                                     INTEGER004 = 0
  387.                                     AnsiPos 47, 9 + INTEGER004
  388.                                     Print "@X1F" + TSTRING025(INTEGER004) + "@X07"
  389.                                     Continue
  390.                                 Endif
  391.                                 Inc INTEGER004
  392.                                 AnsiPos 47, 9 + INTEGER004
  393.                                 Print "@X1F" + TSTRING025(INTEGER004) + "@X07"
  394.                             Endif
  395.                         EndWhile
  396.                         For INT002 = 0 To INT004 + 1
  397.                             AnsiPos 46, 9 + INT002
  398.                             ClrEol
  399.                         Next
  400.                         STRING017 = Trim(TSTRING025(INTEGER004), " ")
  401.                         AnsiPos 50, 4
  402.                         Print "@X08························"
  403.                         AnsiPos 50, 4
  404.                         Print "@X0F" + STRING017
  405.                         Goto LABEL017
  406.                     Endif
  407.                     If (INT002 == 1) Then
  408.                         STRING017 = ""
  409.                         AnsiPos 50, 4
  410.                         Print "@X08························"
  411.                         AnsiPos 50, 4
  412.                         Goto LABEL008
  413.                     Endif
  414.                     If (INT002 == 2) End
  415.                     If (INT002 == 3) Then
  416.                         BOOLEAN006 = 1
  417.                         Goto LABEL017
  418.                     Endif
  419.                     If (INT002 == 4) Then
  420.                         StartDisp 2
  421.                         Cls
  422.                         DispFile PPEPath() + "ENTERHLP", 4
  423.                         StartDisp 1
  424.                         DispFile PPEPath() + "ENTER", 4
  425.                         AnsiPos 33, 10
  426.                         PrintLn STRING023
  427.                         Gosub LABEL026
  428.                     Endif
  429.                 Endif
  430.             Else
  431.                 Goto LABEL017
  432.             Endif
  433.             Goto LABEL010
  434.     End Select
  435.     :LABEL017
  436.     If (Exist(STRING020)) Goto LABEL018
  437.     AnsiPos 40, 10
  438.     PrintLn "                                "
  439.     AnsiPos 40, 11
  440.     PrintLn "                                "
  441.     Goto LABEL019
  442.     :LABEL018
  443.     AnsiPos 62, 6
  444.     Print "             "
  445.     AnsiPos 51, 7
  446.     Print "                     "
  447.     :LABEL019
  448.     AnsiPos 50, 5
  449.     PROC005(STRING018, 24, 0)
  450.     If (STRING018 == "") Then
  451.         AnsiPos 1, 15
  452.         Wait
  453.         End
  454.     Endif
  455.     STRING019 = NoChar()
  456.     If (BOOLEAN003) Goto LABEL023
  457.     AnsiPos 50, 6
  458.     Gosub LABEL025
  459.     BOOLEAN003 = 0
  460.     While (BOOLEAN003 == 0) Do
  461.         STRING019 = Upper(TInkey(0))
  462.         If (STRING019 == NoChar()) Then
  463.             Gosub LABEL025
  464.             BOOLEAN003 = 1
  465.         Endif
  466.         If (STRING019 == YesChar()) Then
  467.             Gosub LABEL024
  468.             BOOLEAN003 = 1
  469.         Endif
  470.         If (STRING019 == "LEFT") Then
  471.             If (INT002 == 1) Then
  472.                 Gosub LABEL025
  473.                 Goto LABEL020
  474.             Endif
  475.             Gosub LABEL024
  476.         Endif
  477.         :LABEL020
  478.         If (STRING019 == "RIGHT") Then
  479.             If (INT002 == 1) Then
  480.                 Gosub LABEL025
  481.                 Goto LABEL021
  482.             Endif
  483.             Gosub LABEL024
  484.         Endif
  485.         :LABEL021
  486.         If (STRING019 == Chr(13)) Then
  487.             If (INT002 == 1) Then
  488.                 STRING019 = YesChar()
  489.                 Goto LABEL022
  490.             Endif
  491.             STRING019 = NoChar()
  492.             :LABEL022
  493.             BOOLEAN003 = 1
  494.         Endif
  495.     EndWhile
  496.     :LABEL023
  497.     If (STRING019 == YesChar()) Then
  498.         BOOLEAN007 = 1
  499.     Else
  500.         BOOLEAN007 = 0
  501.     Endif
  502.     AnsiPos 1, 15
  503.     If (BOOLEAN005) Then
  504.         GetUser
  505.         If (U_Alias == "") Then
  506.             STRING001 = U_Name()
  507.         Else
  508.             STRING001 = U_Alias
  509.         Endif
  510.         PROC004(STRING024, TempPath() + "MSGTMP", TempPath() + "DORINFO1.DEF", TempPath() + "MSGINF", HiMsgNum() + 1, STRING017, STRING001, STRING018, "->", BOOLEAN007, 0)
  511.     Else
  512.         If (BOOLEAN007) Then
  513.             STRING019 = "R"
  514.         Else
  515.             STRING019 = "N"
  516.         Endif
  517.         If (BOOLEAN006) Then
  518.             KbdStuff "E^M" + STRING017 + "^MC^M" + STRING018 + "^M" + STRING019 + "^M"
  519.         Else
  520.             KbdStuff "E^M" + STRING017 + "^M" + STRING018 + "^M" + STRING019 + "^M"
  521.         Endif
  522.     Endif
  523.     End
  524.     :LABEL024
  525.     AnsiPos 50, 6
  526.     Print "@X07NO"
  527.     AnsiPos 56, 6
  528.     Print "@X1FYES@X0F"
  529.     INT002 = 1
  530.     Return
  531.     :LABEL025
  532.     AnsiPos 56, 6
  533.     Print "@X07YES"
  534.     AnsiPos 50, 6
  535.     Print "@X1FNO@X0F"
  536.     INT002 = 2
  537.     Return
  538.     :LABEL026
  539.     AnsiPos 33, 11
  540.     Print TSTRING022(INT002)
  541.     Return
  542.     End
  543.  
  544. ;------------------------------------------------------------------------------
  545.  
  546.     Procedure PROC005(Var String STRING026, Int INT006, Boolean BOOLEAN008)
  547.  
  548.     String   STRING027
  549.     Int      INT007
  550.     Int      INT008
  551.     Int      INT009
  552.     Int      INT010
  553.  
  554.     STRING026 = ""
  555.     INT007 = 0
  556.     :LABEL027
  557.     If (BOOLEAN008) Then
  558.         STRING027 = Upper(TInkey(0))
  559.     Else
  560.         STRING027 = TInkey(0)
  561.     Endif
  562.     If (BOOLEAN008) Then
  563.         If (Len(STRING027) > 1) Then
  564.             If (INT008 == 0) Then
  565.                 TSTRING021(0) = STRING026
  566.             Endif
  567.             If (STRING027 == "UP") Then
  568.                 If (INT008 > 0) Then
  569.                     TSTRING021(INT008) = STRING026
  570.                     Dec INT008
  571.                     AnsiPos 50, 4
  572.                     Print "@X08························"
  573.                     AnsiPos 50, 4
  574.                     Print "@X0F" + TSTRING021(INT008)
  575.                     INT007 = Len(TSTRING021(INT008))
  576.                     STRING026 = TSTRING021(INT008)
  577.                     INT009 = GetX()
  578.                     INT010 = GetY()
  579.                     AnsiPos 62, 6
  580.                     Print "@X0FRe@X07cord # @X08[@X0F" + String(INT008) + "@X08] "
  581.                     AnsiPos INT009, INT010
  582.                 Endif
  583.             Endif
  584.             If (STRING027 == "DOWN") Then
  585.                 If (INT008 < INT003) Then
  586.                     TSTRING021(INT008) = STRING026
  587.                     Inc INT008
  588.                     AnsiPos 50, 4
  589.                     Print "@X08························"
  590.                     AnsiPos 50, 4
  591.                     Print "@X0F" + TSTRING021(INT008)
  592.                     INT007 = Len(TSTRING021(INT008))
  593.                     STRING026 = TSTRING021(INT008)
  594.                     INT009 = GetX()
  595.                     INT010 = GetY()
  596.                     AnsiPos 62, 6
  597.                     Print "@X0FRe@X07cord # @X08[@X0F" + String(INT008) + "@X08] "
  598.                     AnsiPos INT009, INT010
  599.                 Endif
  600.             Endif
  601.         Endif
  602.     Endif
  603.     TSTRING021(INT008) = STRING026
  604.     If (STRING027 == Chr(13)) Goto LABEL028
  605.     If (STRING027 == Chr(29)) Goto LABEL027
  606.     If (STRING027 == Chr(8)) Then
  607.         If (INT007 == 0) Goto LABEL027
  608.         INT007 = INT007 - 1
  609.         Backup 1
  610.         Print "@X08·"
  611.         Backup 1
  612.         STRING026 = Left(STRING026, INT007)
  613.         Goto LABEL027
  614.     Endif
  615.     If (!(Len(STRING027) == 1)) Goto LABEL027
  616.     If (Asc(STRING027) < 31) Goto LABEL027
  617.     If (INT007 == INT006) Goto LABEL027
  618.     STRING026 = STRING026 + STRING027
  619.     INT007 = INT007 + 1
  620.     Print "@X08", STRING027
  621.     Backup 1
  622.     Delay 1
  623.     Print "@X07", STRING027
  624.     Backup 1
  625.     Delay 1
  626.     Print "@X0F", STRING027
  627.     Goto LABEL027
  628.     :LABEL028
  629.     STRING026 = Trim(TSTRING021(INT008), " ")
  630.  
  631.     EndProc
  632.  
  633.  
  634. ;------------------------------------------------------------------------------
  635. ;
  636. ; Usage report (before postprocessing)
  637. ;
  638. ; ■ Statements used :
  639. ;
  640. ;    6       End
  641. ;    1       Cls
  642. ;    6       ClrEol
  643. ;    3       Wait
  644. ;    131     Goto 
  645. ;    103     Let 
  646. ;    37      Print 
  647. ;    7       PrintLn 
  648. ;    86      If 
  649. ;    3       DispFile 
  650. ;    5       FOpen 
  651. ;    7       FClose 
  652. ;    3       FGet 
  653. ;    20      FPutLn 
  654. ;    3       StartDisp 
  655. ;    3       GetUser
  656. ;    5       Delete 
  657. ;    16      Gosub 
  658. ;    3       Return
  659. ;    2       Delay 
  660. ;    5       Inc 
  661. ;    4       Dec 
  662. ;    2       Tokenize 
  663. ;    1       Shell 
  664. ;    2       KbdStuff 
  665. ;    2       OpText 
  666. ;    55      AnsiPos 
  667. ;    4       Backup 
  668. ;    2       Message 
  669. ;    1       SaveScrn
  670. ;    1       RestScrn
  671. ;    1       GetAltUser 
  672. ;    2       FReAltUser
  673. ;    5       EndProc
  674. ;    1       MsgToFile 
  675. ;
  676. ;
  677. ; ■ Functions used :
  678. ;
  679. ;    2       -
  680. ;    1       /
  681. ;    77      +
  682. ;    2       -
  683. ;    55      ==
  684. ;    3       <>
  685. ;    7       <
  686. ;    3       <=
  687. ;    5       >
  688. ;    6       >=
  689. ;    76      !
  690. ;    6       &&
  691. ;    4       ||
  692. ;    5       Len(
  693. ;    4       Upper()
  694. ;    5       Left()
  695. ;    2       Right()
  696. ;    2       Ferr()
  697. ;    12      Chr()
  698. ;    1       Asc()
  699. ;    1       InStr()
  700. ;    3       Trim()
  701. ;    5       U_Name()
  702. ;    3       NoChar()
  703. ;    3       YesChar()
  704. ;    1       Strip()
  705. ;    7       String()
  706. ;    7       CurConf()
  707. ;    5       PCBDat()
  708. ;    5       PPEPath()
  709. ;    4       PcbNode()
  710. ;    5       ReadLine()
  711. ;    2       OnLocal()
  712. ;    1       CurSec()
  713. ;    5       GetToken()
  714. ;    4       Exist()
  715. ;    2       GetX()
  716. ;    2       GetY()
  717. ;    1       FileInf()
  718. ;    11      TempPath()
  719. ;    1       TokCount()
  720. ;    1       U_RecNum()
  721. ;    2       Mixed()
  722. ;    2       HiMsgNum()
  723. ;    2       PCBMac()
  724. ;    4       ConfInfo()
  725. ;    5       TInkey()
  726. ;
  727. ;------------------------------------------------------------------------------
  728. ;
  729. ; Analysis flags : RSd
  730. ;
  731. ; R - Read user ■ 5
  732. ;     User records are read, this may signify that someone wants to get
  733. ;     various informations about a user (for example his password), but
  734. ;     this may also be normal for a program accessing user records (for
  735. ;     example a User Editor)
  736. ;     ■ Search for : GETALTUSER
  737. ;
  738. ; S - Shell to DOS ■ 5
  739. ;     This may be normal if the PPE need to execute an external command,
  740. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  741. ;     or usefull (sorting, maintenance,...). Check!
  742. ;     ■ Search for : SHELL
  743. ;
  744. ; d - Access PCBOARD.DAT ■ 2
  745. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  746. ;     for many PPE so they can find various informations on the system
  747. ;     (system paths, max number of lines in messages, ...) but it may also
  748. ;     be a way to gather vital informations.
  749. ;     ■ Search for : PCBDAT()
  750. ;
  751. ;------------------------------------------------------------------------------
  752. ;
  753. ; Postprocessing report
  754. ;
  755. ;    3       For/Next
  756. ;    3       While/EndWhile
  757. ;    58      If/Then or If/Then/Else
  758. ;    2       Select Case
  759. ;
  760. ;------------------------------------------------------------------------------
  761. ;                 AEGiS Corp - Break the routines, code against the machines!
  762. ;------------------------------------------------------------------------------
  763.